package com.ruoyi.wxapidaily;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.wx.domain.ACount;
import com.ruoyi.wx.domain.ADaily;
import com.ruoyi.wx.domain.AUserCat;
import com.ruoyi.wx.domain.AWxuser;
import com.ruoyi.wx.service.IACountService;
import com.ruoyi.wx.service.IADailyService;
import com.ruoyi.wx.service.IAUserCatService;
import com.ruoyi.wx.service.IAWxuserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * author：pan
 * 微信小程序  获取猫咪 / 热度  /  记录数
 *
 */

@RestController
@RequestMapping("/wxapi")
public class WxCatCountController {

    @Autowired
    private IADailyService dailyService;

    @Autowired
    IAUserCatService userCatService;

    @Autowired
    IACountService countService;

    /**
     * 通过id 查询热度 与 记录数
     * @param catId
     * 2022年11月9日15:57:07
     * @return
     */
    @PostMapping("/getCatHot")
    public AjaxResult getCatHot(@RequestBody Long catId){

        try {
            // 1、通过id 查询热度 与 记录数
            ACount count = countService.selectACountById(catId);  // catId 与 主键 id 一致！

            // 如果为空就返回
            if (count == null){
                return AjaxResult.error("未查询到热度信息！");
            }

            // 2、每次被调用 热度 +1
            count.setHot(count.getHot()+1);

            // 3、保存数据
            countService.updateACount(count);

            return AjaxResult.success("热度查询成功！", count);
        }catch (Exception e){
            return AjaxResult.error("热度查询出错！",e);
        }

    }

    /**
     * 通过openid 分页查询用户上传的 记录
     * @param object
     * 2022年11月9日15:57:07
     * @return
     */
    @PostMapping("/getUserDaily")
    public AjaxResult getUserDaily(@RequestBody JSONObject object){
        try {
            Integer pageNum = (Integer)object.get("pageNum");     // 获取 pageNum
            Integer pageSize = (Integer)object.get("pageSize");   // 获取 pageSize
            String openid = (String)object.get("openid");         // 获取 openid

            ArrayList<ADaily> aDailies;

            // 分页查询
            aDailies = dailyService.getUserDaily(pageNum, pageSize, openid);

            return AjaxResult.success("用户日常分享 查询成功！", aDailies);
        }catch (Exception e){
            return AjaxResult.error("查询失败！", e);
        }
    }
}
